const PAQ = require('priority-async-queue');
//文档：https://github.com/Checkson/priority-async-queue
let paQueue = null; // 队列实例
const initPAQueue = (maxTask) => { // 初始化队列
    paQueue = new PAQ(maxTask || 10000) // 并发上限设置足够大
    // 事件：即将开始 处理任务
    paQueue.on('startTask', (task) => { });
    // 事件：队列处理完成
    paQueue.on('completed', () => {
        //console.log('队列数据处理完成');
    });
    return paQueue
}

// 获取队列实例
const getPAQueue = () => {
    if (!paQueue) {
        paQueue = initPAQueue()
    }
    return paQueue
}

/*
使用示例：
const { getPAQueue } = require('./src/nodeQueue/queue.js')
const paQueue = getPAQueue();
const task1 = (ctx, options) => {
	console.log('执行任务1', ctx, options);
}
paQueue.addTask(task1);
*/

module.exports = {
    initPAQueue, // 初始化队列
    getPAQueue, // 获取队列实例
}
